﻿using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Collections;

namespace Dados.ConexaoSQL
{
    public class Querys
    {        
        #region Querys

            public string dbQuery(string query)
            {
                string retorno = string.Empty;
                switch (query)
                {
                    case "ObterNovaVersaoServidor":
                        retorno = @"Select versao from tbl_versao_Wm";
                        break;
                    case "Desmarcar_PartesREC_SQL":
                        retorno = @"update Tbl_Controle_WM
                                    Set PartesRec = 0, PartesEnv = 0
                                    where Matricula = @matricula And MesFat = @mesFat And Remessa = @remessa";
                        break;
                    case "Desmarcar_PartesENV_SQL":
                        retorno = @"update Tbl_Controle_WM
                                    Set PartesEnv = 0
                                    where Matricula = @matricula And MesFat = @mesFat And Remessa = @remessa";
                        break;                    
                    case "StatusRedeDisponivel":
                        retorno = @"Select Matricula 
                                    From leituristas 
                                    Where Ativo = '1'";
                        break;
                    case "StatusPartesEnviadas":
                        retorno = @"select tcw.NPartes,tcw.PartesRec
                                    from Tbl_Controle_WM tcw
                                    join
	                                    (select MAX(MesFat) MES, MAX(Remessa) GF
		                                    from Tbl_Controle_WM
		                                    where Matricula = @matricula) tbl
                                    on 
	                                    tcw.MesFat = tbl.MES And
	                                    tcw.Remessa = tbl.GF And
	                                    tcw.Matricula = @matricula";
                        break;
                    case "ObterLeituristas":
                        retorno = @"Select Apelido, Matricula 
                                    From leituristas 
                                    Where Ativo = '1' 
                                    Order by Apelido";
                        break;
                    case "ObterRoteiroDisponivel":
                        retorno = @"select * 
                                    from Tbl_Controle_Roteiro_WM
                                    where Matricula = @matricula And Concluido = '0'";
                        break;
                    case "ObterLeituraDisponivel":
                        retorno = @"select * 
                                    from Tbl_Controle_Leitura_WM
                                    where Matricula = @matricula And Concluido = '0'";
                        break;
                    case "ObterLeituraDisponivelKey":
                        retorno = @"select * 
                                    from Tbl_Controle_Leitura_WM
                                    where Matricula = @mat And MesFat = @mesFat And Remessa = @remessa";
                        break;
                    case "ObterStatusRoteiroDisponivelKey":
                        retorno = @"select * 
                                    from Tbl_Controle_Roteiro_WM
                                    where Matricula = @mat And MesFat = @mesFat And Remessa = @remessa And Concluido = '0'";
                        break;
                    case "ObterStatusLeituraDisponivelKey":
                        retorno = @"select * 
                                    from Tbl_Controle_Leitura_WM
                                    where Matricula = @mat And MesFat = @mesFat And Remessa = @remessa And Concluido = '0'";
                        break;
                    case "InserindoControleLeituraSQL":
                        retorno = @"insert into Tbl_Controle_Leitura_WM (Matricula,Remessa,MesFat,MinNumOrdem,MaxNumOrdem,Concluido)
                                    values (@mat,@remessa,@mesFat,@minOrdem,@maxOrdem,'0')";
                        break;
                    case "AtualizandoControleLeituraSQL":
                        retorno = @"update Tbl_Controle_Leitura_WM 
                                    Set Concluido = '1', DtProcessamento = @dtProcessamento
                                    where Matricula = @mat And MesFat = @mesFat And Remessa = @remessa";
                        break;
                    case "AtualizandoControleRoteiroSQL":
                        retorno = @"update Tbl_Controle_Roteiro_WM 
                                    Set Concluido = '1', DtProcessamento = @dtProcessamento
                                    where Matricula = @mat And MesFat = @mesFat And Remessa = @remessa";
                        break;
                    case "DesmarcarControleRoteiroSQL":
                        retorno = @"update Tbl_Controle_Roteiro_WM 
                                    Set Concluido = '0', DtProcessamento = null
                                    where Matricula = @mat And MesFat = @mesFat And Remessa = @remessa";
                        break;
                    case "DeletarControleLeiturasSQL":
                        retorno = @"Delete From Tbl_Controle_Leitura_WM                                     
                                    where Matricula = @mat And MesFat = @mesFat And Remessa = @remessa";
                        break;
                    case "DesmarcarControleLeiturasSQL":
                        retorno = @"update Tbl_Controle_Leitura_WM 
                                    Set Concluido = '0', DtProcessamento = null
                                    where Matricula = @mat And MesFat = @mesFat And Remessa = @remessa";
                        break;
                    case "InsereCadastroNovoMedidor":
                        retorno = @"Insert into Tbl_CadastroNovoMedidor_WM
                                            (UC, MesFat, Rota, MedidorLocal, NovoMedidor, marca, modelo,
                                            Matricula, Leiturista, IdFoto, Foto)                           
                                    Values (@uc,@mesFat,@rota,@medLocal,@novoMed,@marca, @modelo,
                                            @matricula,@leiturista,@idFoto,@Foto)";
                        break;
                    case "ObterListaMarca":
                        retorno = @"select descricao 
                                    from Tbl_MarcaMedidor_WM
                                    where descricao Not Like '***%' and 
                                        descricao Not Like '---%' and 
                                        descricao <> '-' and 
                                        descricao <> 'T' and 
                                        descricao <> 'XX' and 
                                        descricao <> 'ABB 2' and 
                                        descricao <> 'ACTARIS 2' and 
                                        descricao <> 'APREL 2' and 
                                        descricao <> 'ELO 2' and 
                                        descricao <> 'GE 2' and 
                                        descricao <> 'GE 3' and
                                        descricao <> 'GE 4' and  
                                        descricao <> 'CT' and 
                                        descricao <> 'SCHLUMBERGER 2' and
                                        descricao <> 'SCHLUMBERGER 3' and 
                                        descricao <> 'SCH' and    
                                        descricao <> '3ACT' and 
                                        descricao <> 'E20'
                                    order by 1";
                        break;
                    case "ObterListaModelo":
                        retorno = @"select descricao 
                                    from Tbl_ModeloMedidor_WM
                                    where descricao <>'XX' 
                                    order by 1";
                        break;
                    case "ObterListaTrocaRota":
                        retorno = @"select * from Tbl_ListaTrocaRota_WM order by Leiturista";
                        break;
                    case "InsereTrocaRotaForSQLServer":
                        retorno = @"Insert into Tbl_TrocaRota_WM (GrupoFat, UC, DaRota, ParaRota,
                                                               Matricula, Leiturista, Mes)
                                    Values (@grupoFat, @uc, @daRota, @paraRota, @matricula,
                                            @leiturista, @mes)";
                        break;  
                    case "ObterListaTelefonica":
                        retorno = @"SELECT fl.Fone, lt.Apelido Leiturista, fl.Matricula, eqp.Descricao Equipe     
                                    FROM Tbl_Fone_Leituristas fl
	                                    JOIN Leituristas lt
		                                    ON lt.Matricula = fl.Matricula
	                                    JOIN Equipes eqp
		                                    ON eqp.IdEquipe = lt.IdEquipe
                                    WHERE lt.Ativo = 'TRUE'
	                                    ORDER BY eqp.Descricao, lt.Apelido";
                        break;
                    default:
                        retorno = string.Empty;
                        break;
                }
                return retorno;
            }

        #endregion
    }
}
